#include <cstdio>
#include <algorithm>
#include <set>
using namespace std;
long long l,r;
const int N=3e5+10;
bool vis[N];
set<pair<long long,long long>> res;
int main(void){
    scanf("%lld%lld",&l,&r);
    for(long long i=r;i>=l;i--){
        if(vis[i-l]){
            continue;
        }
        for(long long j=l+1;j<r;j++){
            if(i%j && __gcd(i,j)==1 && !vis[j-l]){
                //printf("%lld %lld\n",i,j);
                res.insert({i,j});
                vis[i-l]=true;
                vis[j-l]=true;
                break;
            }
        }
    }
    if(res.size()>0){
        printf("YES\n");
        set<pair<long long,long long>>::iterator it=res.begin();
        for(;it!=res.end();it++){
            printf("%lld %lld\n",it->first,it->second);
        }
    }
    else{
        printf("NO\n");
    }
    return 0;
}